1. Field of the Invention
This invention relates to information systems that produce advice about a design domain in order to help someone designing in the domain. Such systems produce advice by using a "knowledge base" in which information relevant to designing in the domain is stored. Typical domains include the design of software, integrated circuits, mechanical devices, and buildings.
2. Description of the Prior Art
Knowledge-based technology is central to the field of Artificial Intelligence and various application areas that evolved from it (Readings in Knowledge Representation, edited by Ronald J. Brachman and Hector J. Levesque, Morgan-Kauffmann, 1985). This technology has three facets. First are techniques for representing knowledge about the domain (such as configuring computer components) in a computer. Issues of succinctness and completeness arise in the representation of domain knowledge. The second facet is access, techniques for presenting and making accessible appropriate knowledge at appropriate times. The third facet can be called update, maintenance, or evolution; it involves the ability to change the knowledge in response to new or unanticipated conditions in the domain. Note that how the knowledge is represented can greatly impact the second and third facets of knowledge-based technology.
An important application area for knowledge-based technology is the area of design (Report on DARPA-Sponsored Workshop on Design, edited by Saul Amarel, Technical Report no. LCSR-TR-160, Department of Computer Science, Rutgers University, April, 1991). Design is an important engineering activity where objects and artifacts are either designed from scratch or modified (re-design); these objects and artifacts can be physical objects (integrated circuits, bridges), non-physical objects (software, software systems), or even processes (for chemical engineering, manufacturing). The process of design usually involves or results in external representations of the objects and artifacts, such as blueprints, scale models, or block diagrams. Design is very knowledge-intensive: it requires knowledge of the engineering domain, relevant problem-solving knowledge, common sense knowledge, and knowledge of the tools and techniques for external representation. It is very often the case that a large part of the required body of knowledge is only available in the heads of experts in the area and is not written down in any comprehensive fashion. This makes it difficult for novices in the area, or experts unfamiliar with a sub-domain, to locate, understand, and apply design knowledge relevant to a particular design situation.
New technology has resulted in automation of some parts of engineering design, in particular, computer-based graphics workstations for accessing and manipulating the artifacts of design. However, very little work has been done in actually assisting the design process by providing access to design knowledge. Such knowledge remains as organizational "folklore", or represented in voluminous documents which only provide a primitive indexing ability. An alternative approach, the subject of this patent, is to codify design knowledge in a knowledge base and, equally important, provide mechanisms for a user to access that knowledge at relevant portions of the design process and provide mechanisms for the maintenance of the knowledge in the knowledge base.
Assuming the viability of such an approach, a number of important benefits will result. First of all, the availability of appropriate design knowledge will improve the design process and produce superior designs. Second, the codification of design knowledge will allow that knowledge to be efficiently disseminated and re-used, again improving the overall design process within an organization. Third, if a mechanism of updating the design knowledge, also called knowledge maintenance, can be integrated in an organization, this knowledge will remain current and relevant as design situations change.
This latter issue of knowledge maintenance is particularly critical in design. Unlike medical diagnosis or computer configuration domains, the body of relevant design knowledge is both harder to "get right" initially and will change because of changing engineering standards and practices and organizational changes. In addition, the engineering design process is often a process of re-design of existing design objects, and thus is very dependent on the changing state of those objects. This further increases the importance of knowledge maintenance.
One recent organizational development that can ease the maintenance problem is the so-called "quality revolution" in commerce and industry. This movement emphasizes a variety of organizational changes resulting in the notion of an organizational process. Each organizational process can be viewed as discreet unit with a number of inputs (customer requests), outputs (organizational products), and various feedback loops which can be used to evaluate the effectiveness of the process. A process can be further divided, in a hierarchical fashion, into sub-processes. One of the many benefits of this viewpoint is that a process or sub-process can have an owner designated, providing a single point of contact for evaluating and modifying the process. The idea of organizational process can be used to address the problem of maintenance of a design knowledge base if the maintenance problem can be integrated into a new or existing organizational process.